﻿// 麻省理工学院许可证
//
// 版权所有 (c) 2023-2025 缄默 联系电话/18521355630 
//
// 特此免费授予获得本软件的任何人以处理本软件的权利，但须遵守以下条件：在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
//
// 软件按“原样”提供，不提供任何形式的明示或暗示的保证，包括但不限于对适销性、适用性和非侵权的保证。
// 在任何情况下，作者或版权持有人均不对任何索赔、损害或其他责任负责，无论是因合同、侵权或其他方式引起的，与软件或其使用或其他交易有关。

using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;

namespace LvcChong;
public class ValueListAssist
{
    public static ValueList EnumToValueList(Type type, bool addNullValue = false)
    {
        if (!type.IsEnum) throw new Exception("非枚举类型，无法获取枚举列表");
        var ret = new ValueList();
        if (addNullValue) ret.ValueListItems.Add(new ValueListItem(null, ""));
        foreach (var item in System.Enum.GetValues(type))
        {
            var nv = new NameValueItem { Value = item, Name = System.Enum.GetName(type, item), Caption = item.GetDescription() };
            ret.ValueListItems.Add(new ValueListItem(nv.Value, nv.Caption));
        }
        return ret;
    }

    public static string EnumStrToZhCN(Type type, string strValue)
    {
        if (!type.IsEnum) throw new Exception("非枚举类型，无法获取枚举列表");
        var ret = new ValueList();
        foreach (var item in System.Enum.GetValues(type))
        {
            if (System.Enum.GetName(type, item) == strValue) return item.GetDescription();
        }
        return string.Empty;
    }

    public static string EnumValueToZhCN(Type type, int? value)
    {
        if (value == null) return string.Empty;
        if (!type.IsEnum) throw new Exception("非枚举类型，无法获取枚举列表");
        var ret = new ValueList();
        foreach (var item in System.Enum.GetValues(type))
        {
            if ((int)Enum.Parse(type, item.ToString()) == value) return item.GetDescription();
        }
        return string.Empty;
    }
}
